// 商品分类
import { findHeadCategory } from '@/api/home'
import { category } from '@/utils/constant'
export default {
  namespaced: true,
  state: {
    list: category.map((item, i) => ({ id: i, name: item }))
  },
  mutations: {
    // 更新分类列表数据
    updateCate(state, payload) {
      state.list = payload
    },
    updateStatus(state, payload) {
      // 修改分类的状态
      const cate = state.list.find(item => item.id === payload.id)
      if (cate) {
        cate.open = payload.open
      }
    }
  },
  actions: {
    // 调用接口获取分类的数据
    async findHeadCategory(context) {
      const ret = await findHeadCategory()
      if (ret && ret.result) {
        ret.result.forEach(item => {
          // 给每一个一级分类的数据添加一个标志位，用于控制二级分类的弹层
          item.open = false
        })
        context.commit('updateCate', ret.result)
      }
    }
  },
  // 做主页侧边栏时二级目录只需要两个
  getters: {
    cateList(state) {
      return state.list.map(item => {
        // 拷贝一份新的对象，不要直接修改item中的数据
        return {
          ...item,
          // 覆盖了item中的children
          children: item.children && item.children.filter((item, i) => i < 2)
        }
      })
    }
  }
}
